package SSF.Net;

import SSF.OS.*;
import com.renesys.raceway.DML.*;

/**
 * Generic interface for all classes implementing
 * DML-configurable IP packet queue Monitors.
 */
public interface PacketQueueMonitor {

  /** Method called by SSF.Net.NIC during model configuration phase
   *  if the attribute <TT>interface.monitor</TT> is present.
   *  Required attributes:
   *<PRE>interface [
   *    ...
   *     monitor [
   *       use "classname"
   *
   *       ... any user-defined monitor attributes here
   *     ]
   *   ]
   *</PRE>
   */
  public void config(NIC ownerNIC, Configuration cfg) throws configException;

  /** Method called by SSF.Net.NIC during model initialization phase
   *  Any configuration actions depending on other protocols should be done
   *  in the "init" phase.
   */
  public void init();

  /** Method called by class implementing SSF.Net.packetQueue when a packet
   *  is enqueued.
   */
  public void receive(ProtocolMessage packet);
}

